home *** CD-ROM | disk | FTP | other *** search
/ Programming Languages Suite / ProgramD2.iso / Borland / Borland C++ V5.02 / 32SNIPIT.PAK / FIELDMAP.C < prev    next >
C/C++ Source or Header  |  1997-05-06  |  4KB  |  111 lines

  1. // BDE32 3.x - (C) Copyright 1996 by Borland International
  2.  
  3. // fieldmap.c
  4. #include "snipit.h"
  5.  
  6. static const char szTblName[] = "Vendors";
  7. static const char szTblType[] = szPARADOX;
  8.  
  9. // Field descriptor used in mapping the fields of the table
  10. static SNIPFAR FLDDesc FldDescs1[] = {
  11.               {
  12.                 1,            // Field number
  13.                 "Vendor Name",// Field name
  14.                 fldZSTRING,   // Field type
  15.                 fldUNKNOWN,   // Field subtype
  16.                 20,           // Field size ( 1 or 0, except
  17.                               //     BLOb or CHAR field )
  18.                 0,            // Decimal places ( 0 )
  19.                               //     computed
  20.                 0,            // Offset in record ( 0 )
  21.                 0,            // Length in bytes  ( 0 )
  22.                 0,            // For Null bits    ( 0 )
  23.                 fldvNOCHECKS, // Validity checks   ( 0 )
  24.                 fldrREADWRITE // Rights
  25.               },
  26.               {
  27.                 2, "State/Prov", fldZSTRING, fldUNKNOWN,
  28.                 20, 0, 0, 0, 0,
  29.                 fldvNOCHECKS, fldrREADWRITE
  30.               }
  31.              }; // FldDescs1
  32.  
  33. //=====================================================================
  34. //  Function:
  35. //          TBFieldMap();
  36. //
  37. //  Description:
  38. //          This example shows how to set a field map on a cursor.  Field
  39. //          maps limit the number of fields that are visible to the user.
  40. //          This limits the data that needs to be transfered.
  41. //=====================================================================
  42. void
  43. TBFieldMap (void)
  44. {
  45.     hDBIDb      hDb;            // Handle to the database
  46.     hDBICur     hCur;           // Handle to the table
  47.     UINT16      uNumFields;     // Number of fields in the mapping
  48.     UINT32      uNumRecs = 10;  // Number of records to display
  49.     DBIResult   rslt;           // Return value from IDAPI functions
  50.  
  51.     Screen("*** Field Mapping Example ***\r\n");
  52.  
  53.     BREAK_IN_DEBUGGER();
  54.  
  55.     Screen("    Initializing IDAPI... ");
  56.     if (InitAndConnect(&hDb) != DBIERR_NONE)
  57.     {                                        
  58.         Screen("\r\n*** End of Example ***");
  59.         return;
  60.     }
  61.  
  62.     Screen("    Setting the database directory...");
  63.     rslt = DbiSetDirectory(hDb, (pCHAR) szTblDirectory);
  64.     ChkRslt(rslt, "SetDirectory");
  65.  
  66.     Screen("    Open the %s table....", szTblName);
  67.     rslt = DbiOpenTable(hDb, (pCHAR) szTblName, (pCHAR) szTblType,
  68.                         NULL, NULL, 0, dbiREADWRITE, dbiOPENSHARED,
  69.                         xltFIELD, FALSE, NULL, &hCur);
  70.     if (ChkRslt(rslt, "OpenTable") != DBIERR_NONE)
  71.     {
  72.         CloseDbAndExit(&hDb);
  73.         Screen("\r\n*** End of Example ***");
  74.         return;
  75.     }
  76.  
  77.     Screen("    Change the fields that are visible in the table...");
  78.  
  79.     // Determine the number of fields in the descriptor
  80.     uNumFields = sizeof(FldDescs1) / sizeof (FldDescs1[0]);
  81.  
  82.     // Set the field mapping as specified in the field descriptor
  83.     rslt = DbiSetFieldMap(hCur, uNumFields, FldDescs1);
  84.     ChkRslt(rslt, "SetFieldMap");
  85.  
  86.     rslt = DbiSetToBegin(hCur);
  87.     ChkRslt(rslt, "SetToBegin");
  88.  
  89.     Screen("    Display the table with an active field map...");
  90.     DisplayTable(hCur, uNumRecs);
  91.  
  92.     Screen("\r\n    Remove all field mappings...");
  93.     rslt = DbiSetFieldMap(hCur, 0, 0);
  94.     ChkRslt(rslt, "SetFieldMap");
  95.  
  96.     rslt = DbiSetToBegin(hCur);
  97.     ChkRslt(rslt, "SetToBegin");
  98.  
  99.     Screen("    Display the table without any field mapping...");
  100.     DisplayTable(hCur, uNumRecs);
  101.  
  102.     Screen("\r\n    Close the %s table...", szTblName);
  103.     rslt = DbiCloseCursor(&hCur);
  104.     ChkRslt(rslt, "CloseCursor");
  105.  
  106.     Screen("    Close the database and exit IDAPI...");
  107.     CloseDbAndExit(&hDb);
  108.  
  109.     Screen("\r\n*** End of Example ***");
  110. }
  111.